# 主函数层
from controller.getDataForCommon import getDataForCommon
from pandasService.pandasService import pandasService
from utils.calculate import calculate
from utils.linearRegressionAnalysisForGDP import LinearRegressionAnalysisForGDP
from utils.linearRegressionAnalysisForDevelopment import LinearRegressionAnalysisForDevelopment


class main:
    def __init__(self):
        pass

    # 获取各地区近10年来的GDP数据
    @staticmethod
    def getDataForGDP():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=[{'
               '"wdcode":"zb","valuecode":"A020101"}]&dfwds=[]&k1=1717480553776')
        filename = '各地区近10年来GDP(亿元)的变化'
        l = getDataForCommon.getDataForCommon(url, filename)    # 获取GDP数据
        return l

    # 获取和地区近10年来高等院校数量的变化
    @staticmethod
    def getDataForUniversity():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=[{'
               '"wdcode":"zb","valuecode":"A0M0101"}]&dfwds=[]&k1=1717427280949')
        filename = '各地区近10年来高等院校数量(所)的变化'
        getDataForCommon.getDataForCommon(url, filename)

    # 获取各地区人均可支配收入水平
    @staticmethod
    def getDataForIncome():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=[{'
               '"wdcode":"zb","valuecode":"A0A0101"}]&dfwds=[]&k1=1717427440931&h=1')
        filename = '各地区近10年来人均可支配收入水平(元)的变化'
        getDataForCommon.getDataForCommon(url, filename)

    # 获取各地区近10年来的按经营单位所在地分货物进出口总额
    @staticmethod
    def getDataForTrade():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=[{'
               '"wdcode":"zb","valuecode":"A060101"}]&dfwds=[]&k1=1717427573768')
        filename = '各地区近10年来外贸进出口总额(千美元)的变化'
        getDataForCommon.getDataForCommon(url, filename)

    # 获取各地区近 10 年来医疗卫生机构的数量
    @staticmethod
    def getDataForMedical():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=%5B%7B'
               '%22wdcode%22%3A%22zb%22%2C%22valuecode%22%3A%22A0O0101%22%7D%5D&dfwds=%5B%5D&k1=1717599558848')
        filename = '各地区近10年来医疗卫生机构数量(个)的变化'
        getDataForCommon.getDataForCommon(url, filename)

    # 获取各地区近 10 年来人均城市道路面积
    @staticmethod
    def getDataForRoad():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=[{'
               '"wdcode":"zb","valuecode":"A0B0A01"}]&dfwds=[]&k1=1717599848973')
        filename = '各地区近10年来人均城市道路面积(平方米)的变化'
        getDataForCommon.getDataForCommon(url, filename)

    # 获取各地区近 10 年来城市用水普及率
    @staticmethod
    def getDataForWater():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=[{'
               '"wdcode":"zb","valuecode":"A0B0A01"}]&dfwds=[]&k1=1717599903836')
        filename = '各地区近10年来城市用水普及率(%)的变化'
        getDataForCommon.getDataForCommon(url, filename)

    # 获取各地区近 10 年来的生活垃圾填埋量
    @staticmethod
    def getDataForForest():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=[{'
               '"wdcode":"zb","valuecode":"A0C0801"}]&dfwds=[]&k1=1717600716134')
        filename = '各地区近10年来生活垃圾填埋量(万吨)的变化'
        getDataForCommon.getDataForCommon(url, filename)

    # 获取各地区近 10 年来国内发明专利申请受理量(项)
    @staticmethod
    def getDataForInvention():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=[{'
               '"wdcode":"zb","valuecode":"A020101"}]&dfwds=[]&k1=1717599307903')
        filename = '各地区近10年来国内发明专利申请受理量(个)的变化'
        getDataForCommon.getDataForCommon(url, filename)

    # 获取各地区近 10 年来总人口的变化
    @staticmethod
    def getDataForPopulation():
        url = ('https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=[{'
               '"wdcode":"zb","valuecode":"A030101"}]&dfwds=[]&k1=1717602386098')
        filename = '各地区近10年来总人口(万人)的变化'
        getDataForCommon.getDataForCommon(url, filename)


if __name__ == '__main__':
    main().getDataForUniversity()
    main().getDataForGDP()
    main().getDataForTrade()
    main().getDataForIncome()
    main().getDataForMedical()
    main().getDataForRoad()
    main().getDataForWater()
    main().getDataForForest()
    main().getDataForInvention()
    main().getDataForPopulation()

    pandasService.parserDataFromExcel()
    calculate.calculateDataForDevelopment()    # 计算最终数据
    LinearRegressionAnalysisForGDP.linearRegressionAnalysisForGDP()  # 线性回归分析
    LinearRegressionAnalysisForDevelopment.linearRegressionAnalysisForDevelopment()  # 线性回归分析
